λΆμ° μμ€ν μμ λμ©λ λ°μ΄ν°μ μ μ²λ¦¬νλ κ°λ ₯ν νλ μμν¬, 맡리λμ€ ν¨λ¬λ€μμ μ΄ν΄λ³΄μΈμ. κΈλ‘λ² λ°μ΄ν° μ²λ¦¬λ₯Ό μν μ리, μ μ© μ¬λ‘, μ₯μ μ μμλ΄ λλ€.
맡리λμ€(Map-Reduce): λΆμ° μ»΄ν¨ν μ ν¨λ¬λ€μ μ ν
λΉ λ°μ΄ν° μλμλ λ°©λν λ°μ΄ν°μ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬νλ λ₯λ ₯μ΄ κ°μ₯ μ€μν©λλ€. κΈ°μ‘΄μ μ»΄ν¨ν λ°©μμ μ μΈκ³μμ λ§€μΌ μμ±λλ μ 보μ μ, μλ, λ€μμ±μ μ²λ¦¬νλ λ° μ΄λ €μμ κ²ͺλ κ²½μ°κ° λ§μ΅λλ€. λ°λ‘ μ΄ μ§μ μμ 맡리λμ€μ κ°μ λΆμ° μ»΄ν¨ν ν¨λ¬λ€μμ΄ λ±μ₯ν©λλ€. μ΄ λΈλ‘κ·Έ κ²μλ¬Όμμλ 맡리λμ€, κ·Έ κΈ°λ³Έ μ리, μ€μ μ μ© μ¬λ‘ λ° μ΄μ μ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡νμ¬ μ΄ κ°λ ₯ν λ°μ΄ν° μ²λ¦¬ μ κ·Ό λ°©μμ μ΄ν΄νκ³ νμ©ν μ μλλ‘ λμ΅λλ€.
맡리λμ€λ 무μμΈκ°?
맡리λμ€λ ν΄λ¬μ€ν°μμ λ³λ ¬ λΆμ° μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ λμ©λ λ°μ΄ν°μ μ μ²λ¦¬νκ³ μμ±νκΈ° μν νλ‘κ·Έλλ° λͺ¨λΈμ΄μ κ΄λ ¨ ꡬνμ λλ€. μ΄λ ꡬκΈμ΄ λ΄λΆμ μΈ νμ, νΉν μΉ μΈλ±μ± λ° κΈ°ν λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬ μμ μ μν΄ λμ€ννμ΅λλ€. ν΅μ¬ μμ΄λμ΄λ 볡μ‘ν μμ μ μ¬λ¬ λ¨Έμ μμ λ³λ ¬λ‘ μ€νν μ μλ λ μκ³ λ 립μ μΈ νμ μμ μΌλ‘ λλλ κ²μ λλ€.
ν΅μ¬μ μΌλ‘ 맡리λμ€λ λ§΅(Map) λ¨κ³μ 리λμ€(Reduce) λ¨κ³λΌλ λ κ°μ§ μ£Όμ λ¨κ³λ‘ μλν©λλ€. μ΄λ¬ν λ¨κ³λ μ ν λ° μ λ ¬ λ¨κ³μ κ²°ν©λμ΄ νλ μμν¬μ μ€μΆλ₯Ό νμ±ν©λλ€. 맡리λμ€λ λ¨μνλ©΄μλ κ°λ ₯νκ² μ€κ³λμ΄ κ°λ°μκ° λ³λ ¬ν λ° λΆμ°μ 볡μ‘μ±μ μ§μ μ²λ¦¬ν νμ μμ΄ λ°©λν μμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλλ‘ ν©λλ€.
λ§΅(Map) λ¨κ³
λ§΅ λ¨κ³λ μ¬μ©μ μ μ λ§΅ ν¨μλ₯Ό μ λ ₯ λ°μ΄ν° μ§ν©μ μ μ©νλ κ³Όμ μ ν¬ν¨ν©λλ€. μ΄ ν¨μλ ν€-κ° μμ μ λ ₯μΌλ‘ λ°μ μ€κ° ν€-κ° μμ μ§ν©μ μμ±ν©λλ€. κ° μ λ ₯ ν€-κ° μμ λ 립μ μΌλ‘ μ²λ¦¬λλ―λ‘ ν΄λ¬μ€ν°μ μ¬λ¬ λ Έλμμ λ³λ ¬ μ€νμ΄ κ°λ₯ν©λλ€. μλ₯Ό λ€μ΄, λ¨μ΄ κ°μ μΈκΈ° μ ν리μΌμ΄μ μμ μ λ ₯ λ°μ΄ν°λ ν μ€νΈ μ€μΌ μ μμ΅λλ€. λ§΅ ν¨μλ κ° μ€μ μ²λ¦¬νμ¬ κ° λ¨μ΄μ λν ν€-κ° μμ λ΄λ³΄λ΄λ©°, μ¬κΈ°μ ν€λ λ¨μ΄ μ체μ΄κ³ κ°μ λ³΄ν΅ 1(ν λ²μ λ°μμ λνλ)μ λλ€.
λ§΅ λ¨κ³μ μ£Όμ νΉμ§:
- λ³λ ¬μ±: κ° λ§΅ νμ€ν¬λ μ λ ₯ λ°μ΄ν°μ μΌλΆμ λν΄ λ 립μ μΌλ‘ μλν μ μμ΄ μ²λ¦¬ μλλ₯Ό ν¬κ² λμ λλ€.
- μ λ ₯ λΆν : μ λ ₯ λ°μ΄ν°λ μΌλ°μ μΌλ‘ λ§΅ νμ€ν¬μ ν λΉλλ λ μμ μ²ν¬(μ: νμΌμ λΈλ‘)λ‘ λλ©λλ€.
- μ€κ° ν€-κ° μ: λ§΅ ν¨μμ μΆλ ₯μ μΆκ°λ‘ μ²λ¦¬λ μ€κ° ν€-κ° μμ λͺ¨μμ λλ€.
μ ν λ° μ λ ¬(Shuffle and Sort) λ¨κ³
λ§΅ λ¨κ³ μ΄νμ νλ μμν¬λ μ ν λ° μ λ ¬ μμ μ μνν©λλ€. μ΄ μ€μν λ¨κ³λ λμΌν ν€λ₯Ό κ°μ§ λͺ¨λ μ€κ° ν€-κ° μμ ν¨κ» κ·Έλ£Ήνν©λλ€. νλ μμν¬λ ν€λ₯Ό κΈ°μ€μΌλ‘ μ΄ μλ€μ μ λ ¬ν©λλ€. μ΄ κ³Όμ μ ν΅ν΄ νΉμ ν€μ κ΄λ ¨λ λͺ¨λ κ°μ΄ ν¨κ» λͺ¨μ¬ 리λμ€ λ¨κ³λ₯Ό μ€λΉν μ μκ² λ©λλ€. λ§΅κ³Ό 리λμ€ νμ€ν¬ κ°μ λ°μ΄ν° μ μ‘λ μ΄ λ¨κ³μμ μ²λ¦¬λλ©°, μ΄λ₯Ό μ νλ§μ΄λΌκ³ ν©λλ€.
μ ν λ° μ λ ¬ λ¨κ³μ μ£Όμ νΉμ§:
- ν€λ³ κ·Έλ£Ήν: λμΌν ν€μ κ΄λ ¨λ λͺ¨λ κ°μ΄ ν¨κ» κ·Έλ£Ήνλ©λλ€.
- μ λ ¬: λ°μ΄ν°λ μ’ μ’ ν€λ³λ‘ μ λ ¬λλ©°, μ΄λ μ ν μ¬νμ λλ€.
- λ°μ΄ν° μ μ‘(μ νλ§): μ€κ° λ°μ΄ν°λ λ€νΈμν¬λ₯Ό ν΅ν΄ 리λμ€ νμ€ν¬λ‘ μ΄λλ©λλ€.
리λμ€(Reduce) λ¨κ³
리λμ€ λ¨κ³λ μ¬μ©μ μ μ 리λμ€ ν¨μλ₯Ό κ·Έλ£Ήνλκ³ μ λ ¬λ μ€κ° λ°μ΄ν°μ μ μ©ν©λλ€. 리λμ€ ν¨μλ ν€μ ν΄λΉ ν€μ μ°κ²°λ κ° λͺ©λ‘μ μ λ ₯μΌλ‘ λ°μ μ΅μ’ μΆλ ₯μ μμ±ν©λλ€. λ¨μ΄ κ°μ μΈκΈ° μμ λ₯Ό κ³μνλ©΄, 리λμ€ ν¨μλ λ¨μ΄(ν€)μ 1μ λͺ©λ‘(κ°)μ λ°μ΅λλ€. κ·Έκ²μ μ΄ 1λ€μ ν©μ°νμ¬ ν΄λΉ λ¨μ΄μ μ΄ λ°μ νμλ₯Ό μ λλ€. 리λμ€ νμ€ν¬λ μΌλ°μ μΌλ‘ μΆλ ₯μ νμΌμ΄λ λ°μ΄ν°λ² μ΄μ€μ μλλ€.
리λμ€ λ¨κ³μ μ£Όμ νΉμ§:
- μ§κ³: 리λμ€ ν¨μλ μ£Όμ΄μ§ ν€μ λν κ°λ€μ λν΄ μ§κ³ λλ μμ½μ μνν©λλ€.
- μ΅μ’ μΆλ ₯: 리λμ€ λ¨κ³μ μΆλ ₯μ κ³μ°μ μ΅μ’ κ²°κ³Όμ λλ€.
- λ³λ ¬μ±: μ¬λ¬ 리λμ€ νμ€ν¬κ° λμμ μ€νλμ΄ λ€λ₯Έ ν€ κ·Έλ£Ήμ μ²λ¦¬ν μ μμ΅λλ€.
맡리λμ€ μλ λ°©μ (λ¨κ³λ³)
ν° ν μ€νΈ νμΌμμ κ° λ¨μ΄μ λ°μ νμλ₯Ό μΈλ ꡬ체μ μΈ μλ‘ μ€λͺ ν΄ λ³΄κ² μ΅λλ€. μ΄ νμΌμ΄ λΆμ° νμΌ μμ€ν μ μ¬λ¬ λ Έλμ μ μ₯λμ΄ μλ€κ³ μμν΄ λ³΄μΈμ.
- μ λ ₯: μ λ ₯ ν μ€νΈ νμΌμ λ μμ μ²ν¬λ‘ λΆν λμ΄ λ Έλ μ 체μ λ°°ν¬λ©λλ€.
- λ§΅ λ¨κ³:
- κ° λ§΅ νμ€ν¬λ μ λ ₯ λ°μ΄ν°μ μ²ν¬λ₯Ό μ½μ΅λλ€.
- λ§΅ ν¨μλ λ°μ΄ν°λ₯Ό μ²λ¦¬νμ¬ κ° μ€μ λ¨μ΄λ‘ ν ν°νν©λλ€.
- κ° λ¨μ΄μ λν΄ λ§΅ ν¨μλ ν€-κ° μμ λ΄λ³΄λ λλ€: (λ¨μ΄, 1). μλ₯Ό λ€μ΄, ("the", 1), ("quick", 1), ("brown", 1) λ±μ λλ€.
- μ ν λ° μ λ ¬ λ¨κ³: 맡리λμ€ νλ μμν¬λ λμΌν ν€λ₯Ό κ°μ§ λͺ¨λ ν€-κ° μμ κ·Έλ£Ήννκ³ μ λ ¬ν©λλ€. λͺ¨λ "the" μΈμ€ν΄μ€κ° ν¨κ» λͺ¨μ΄κ³ , λͺ¨λ "quick" μΈμ€ν΄μ€κ° ν¨κ» λͺ¨μ΄λ μμ λλ€.
- 리λμ€ λ¨κ³:
- κ° λ¦¬λμ€ νμ€ν¬λ ν€(λ¨μ΄)μ κ° λͺ©λ‘(1λ€)μ λ°μ΅λλ€.
- 리λμ€ ν¨μλ κ°(1λ€)μ ν©μ°νμ¬ λ¨μ΄ μλ₯Ό κ²°μ ν©λλ€. μλ₯Ό λ€μ΄, "the"μ κ²½μ° ν¨μλ 1λ€μ ν©μ°νμ¬ "the"κ° λνλ μ΄ νμλ₯Ό ꡬν©λλ€.
- 리λμ€ νμ€ν¬λ κ²°κ³Όλ₯Ό μΆλ ₯ν©λλ€: (λ¨μ΄, κ°μ). μλ₯Ό λ€μ΄, ("the", 15000), ("quick", 500) λ±μ λλ€.
- μΆλ ₯: μ΅μ’ μΆλ ₯μ λ¨μ΄ μκ° ν¬ν¨λ νμΌ(λλ μ¬λ¬ νμΌ)μ λλ€.
맡리λμ€ ν¨λ¬λ€μμ μ΄μ
맡리λμ€λ λμ©λ λ°μ΄ν°μ μ²λ¦¬μ μλ§μ μ΄μ μ μ 곡νμ¬ λ€μν μ ν리μΌμ΄μ μ λ§€λ ₯μ μΈ μ νμ΄ λ©λλ€.
- νμ₯μ±: 맡리λμ€μ λΆμ° νΉμ±μ μ¬μ΄ νμ₯μ κ°λ₯νκ² ν©λλ€. ν΄λ¬μ€ν°μ λ λ§μ λ¨Έμ μ μΆκ°νμ¬ λ ν° λ°μ΄ν°μ κ³Ό λ 볡μ‘ν κ³μ°μ μ²λ¦¬ν μ μμ΅λλ€. μ΄λ κΈ°νκΈμμ μΈ λ°μ΄ν° μ±μ₯μ κ²½ννλ μ‘°μ§μ νΉν μ μ©ν©λλ€.
- λ΄κ²°ν¨μ±: 맡리λμ€λ μ₯μ λ₯Ό μ μμ μΌλ‘ μ²λ¦¬νλλ‘ μ€κ³λμμ΅λλ€. ν λ Έλμμ νμ€ν¬κ° μ€ν¨νλ©΄ νλ μμν¬λ λ€λ₯Έ λ Έλμμ μλμΌλ‘ λ€μ μμνμ¬ μ 체 κ³μ°μ΄ κ³μλλλ‘ λ³΄μ₯ν©λλ€. μ΄λ νλμ¨μ΄ μ₯μ κ° λΆκ°νΌν λκ·λͺ¨ ν΄λ¬μ€ν°μμ κ²¬κ³ ν λ°μ΄ν° μ²λ¦¬λ₯Ό μν΄ λ§€μ° μ€μν©λλ€.
- λ³λ ¬μ±: 맡리λμ€μ κ³ μ ν λ³λ ¬μ±μ μ²λ¦¬ μκ°μ ν¬κ² λ¨μΆν©λλ€. νμ€ν¬κ° μ¬λ¬ λ¨Έμ μ κ±Έμ³ λΆν λκ³ λμμ μ€νλλ―λ‘ μμ°¨ μ²λ¦¬μ λΉν΄ λ λΉ λ₯Έ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. μ΄λ ν΅μ°°λ ₯ ν보 μκ°μ΄ μ€μν λ μ μ©ν©λλ€.
- λ°μ΄ν° μ§μμ±(Data Locality): 맡리λμ€λ μ’ μ’ λ°μ΄ν° μ§μμ±μ νμ©ν μ μμ΅λλ€. νλ μμν¬λ λ°μ΄ν°κ° μλ λ Έλμ λ§΅ νμ€ν¬λ₯Ό μ€μΌμ€λ§νμ¬ λ€νΈμν¬λ₯Ό ν΅ν λ°μ΄ν° μ μ‘μ μ΅μννκ³ μ±λ₯μ ν₯μμν€λ €κ³ μλν©λλ€.
- λ¨μνλ νλ‘κ·Έλλ° λͺ¨λΈ: 맡리λμ€λ λΆμ° μ»΄ν¨ν μ 볡μ‘μ±μ μΆμννμ¬ μλμ μΌλ‘ κ°λ¨ν νλ‘κ·Έλλ° λͺ¨λΈμ μ 곡ν©λλ€. κ°λ°μλ λ³λ ¬ν λ° λ°μ΄ν° λΆμ°μ 볡μ‘μ±λ³΄λ€λ λΉμ¦λμ€ λ‘μ§μ μ§μ€ν μ μμ΅λλ€.
맡리λμ€μ μ μ© μ¬λ‘
맡리λμ€λ λ€μν μ°μ κ³Ό κ΅κ°μ κ±Έμ³ λ€μν μ ν리μΌμ΄μ μμ λ리 μ¬μ©λ©λλ€. μ£Όλͺ©ν λ§ν μ μ© μ¬λ‘λ λ€μκ³Ό κ°μ΅λλ€:
- μΉ μΈλ±μ±: κ²μ μμ§μ 맡리λμ€λ₯Ό μ¬μ©νμ¬ μΉμ μΈλ±μ±νκ³ μ μΈκ³ μΉμ¬μ΄νΈμμ μμ§λ λ°©λν μμ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬ν©λλ€.
- λ‘κ·Έ λΆμ: μΉ μλ² λ‘κ·Έ, μ ν리μΌμ΄μ λ‘κ·Έ, 보μ λ‘κ·Έλ₯Ό λΆμνμ¬ μΆμΈλ₯Ό νμ νκ³ , μ΄μμ κ°μ§νλ©°, λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. μ¬κΈ°μλ μμμ, μ λ½, λ―Έμ£Ό μ§μμ λ°μ΄ν° μΌν°μμ μμ±λ λ‘κ·Έμ κ°μ΄ λ€λ₯Έ μκ°λμμ μμ±λ λ‘κ·Έ μ²λ¦¬λ ν¬ν¨λ©λλ€.
- λ°μ΄ν° λ§μ΄λ: κ³ κ° νλ λΆμ, μ₯λ°κ΅¬λ λΆμ, μ¬κΈ° νμ§μ κ°μ λκ·λͺ¨ λ°μ΄ν°μ μμ κ°μΉ μλ ν΅μ°°λ ₯μ μΆμΆν©λλ€. μ΄λ μ μΈκ³ κΈμ΅ κΈ°κ΄μμ μμ¬μ€λ¬μ΄ κ±°λλ₯Ό νμ§νλ λ° μ¬μ©λ©λλ€.
- λ¨Έμ λ¬λ: λκ·λͺ¨ λ°μ΄ν°μ μμ λ¨Έμ λ¬λ λͺ¨λΈμ νλ ¨ν©λλ€. μκ³ λ¦¬μ¦μ ν΄λ¬μ€ν°μ λΆμ°νμ¬ λͺ¨λΈ νλ ¨ μλλ₯Ό λμΌ μ μμ΅λλ€. μ΄λ μ΄λ―Έμ§ μΈμ, μμ°μ΄ μ²λ¦¬, μΆμ² μμ€ν κ³Ό κ°μ μ ν리μΌμ΄μ μ μ¬μ©λ©λλ€.
- μλ¬Όμ 보ν: κ²λ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ μλ¬Όνμ μμ΄μ λΆμν©λλ€. μ΄λ μ°κ΅¬μλ€μ΄ μλ§μ μΆμ²μ λ°μ΄ν°λ₯Ό λΆμνλ μ¬λ¬ κ΅κ°μ κ³Όν μ°κ΅¬μ μ μ©ν©λλ€.
- μΆμ² μμ€ν : μ ν, μ½ν μΈ , μλΉμ€μ λν κ°μΈνλ μΆμ²μ ꡬμΆν©λλ€. μ΄λ¬ν μμ€ν μ μ μΈκ³ μ μμκ±°λ νλ«νΌκ³Ό λ―Έλμ΄ μ€νΈλ¦¬λ° μλΉμ€μμ μ¬μ©λ©λλ€.
- μ¬κΈ° νμ§: κΈμ΅ κ±°λμμ μ¬κΈ° νμλ₯Ό μλ³ν©λλ€. μ μΈκ³ μμ€ν μ΄ κΈμ΅ μμ μ μν΄ μ΄λ₯Ό νμ©ν©λλ€.
- μμ λ―Έλμ΄ λΆμ: μμ λ―Έλμ΄ λ°μ΄ν°λ₯Ό λΆμνμ¬ νΈλ λλ₯Ό μΆμ νκ³ , κ°μ±μ λͺ¨λν°λ§νλ©°, μ¬μ©μ νλμ μ΄ν΄ν©λλ€. μ΄λ μμ λ―Έλμ΄ μ¬μ©μ΄ μ§λ¦¬μ κ²½κ³λ₯Ό μ΄μν¨μ λ°λΌ μ μΈκ³μ μΌλ‘ κ΄λ ¨μ΄ μμ΅λλ€.
맡리λμ€μ μ£Όμ ꡬν체
맡리λμ€ ν¨λ¬λ€μμ μ¬λ¬ ꡬνμ΄ μμΌλ©°, κ°κ° λ€λ₯Έ κΈ°λ₯κ³Ό μ±λ₯μ μ 곡ν©λλ€. κ°μ₯ μΈκΈ° μλ ꡬν체λ λ€μκ³Ό κ°μ΅λλ€:
- νλ‘(Hadoop): μνμΉ μννΈμ¨μ΄ μ¬λ¨μ΄ μ€ν μμ€ νλ‘μ νΈλ‘ κ°λ°ν κ°μ₯ μ μλ €μ Έ μκ³ λ리 μ±νλ 맡리λμ€ κ΅¬ν체μ λλ€. νλ‘μ 맡리λμ€ μ ν리μΌμ΄μ μ μ§μνκΈ° μν΄ λΆμ° νμΌ μμ€ν (HDFS)κ³Ό 리μμ€ κ΄λ¦¬μ(YARN)λ₯Ό μ 곡ν©λλ€. μ μΈκ³μ λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬ νκ²½μμ μΌλ°μ μΌλ‘ μ¬μ©λ©λλ€.
- μνμΉ μ€νν¬(Apache Spark): 맡리λμ€ ν¨λ¬λ€μμ νμ₯νλ λΉ λ₯΄κ³ λ²μ©μ μΈ ν΄λ¬μ€ν° μ»΄ν¨ν μμ€ν μ λλ€. μ€νν¬λ μΈλ©λͺ¨λ¦¬ μ²λ¦¬λ₯Ό μ 곡νμ¬ λ°λ³΅μ μΈ κ³μ°κ³Ό μ€μκ° λ°μ΄ν° λΆμμμ κΈ°μ‘΄ 맡리λμ€λ³΄λ€ ν¨μ¬ λΉ λ¦ λλ€. μ€νν¬λ κΈμ΅, μλ£, μ μμκ±°λ λ± λ§μ μ°μ μμ μΈκΈ°κ° μμ΅λλ€.
- κ΅¬κΈ ν΄λΌμ°λ λ°μ΄ν°νλ‘μ°(Google Cloud Dataflow): κ΅¬κΈ ν΄λΌμ°λ νλ«νΌμμ μ 곡νλ μμ κ΄λ¦¬ν μλ²λ¦¬μ€ λ°μ΄ν° μ²λ¦¬ μλΉμ€μ λλ€. λ°μ΄ν°νλ‘μ°λ₯Ό ν΅ν΄ κ°λ°μλ 맡리λμ€ λͺ¨λΈμ μ¬μ©νμ¬ λ°μ΄ν° νμ΄νλΌμΈμ ꡬμΆν μ μμΌλ©°(μ€νΈλ¦Ό μ²λ¦¬λ μ§μ), λ€μν μμ€μ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ λ€λ₯Έ λμμΌλ‘ μΈ μ μμ΅λλ€.
- μλ§μ‘΄ EMR (Elastic MapReduce): μλ§μ‘΄ μΉ μλΉμ€(AWS)μμ μ 곡νλ κ΄λ¦¬ν νλ‘ λ° μ€νν¬ μλΉμ€μ λλ€. EMRμ νλ‘ λ° μ€νν¬ ν΄λ¬μ€ν°μ λ°°ν¬, κ΄λ¦¬, νμ₯μ λ¨μννμ¬ μ¬μ©μκ° λ°μ΄ν° λΆμμ μ§μ€ν μ μλλ‘ ν©λλ€.
λμ κ³Όμ λ° κ³ λ € μ¬ν
맡리λμ€λ μλΉν μ΄μ μ μ 곡νμ§λ§ λͺ κ°μ§ λμ κ³Όμ λ μμ΅λλ€:
- μ€λ²ν€λ: 맡리λμ€ νλ μμν¬λ λ§΅κ³Ό 리λμ€ λ¨κ³ κ°μ μ νλ§, μ λ ¬, λ°μ΄ν° μ΄λμΌλ‘ μΈν΄ μ€λ²ν€λκ° λ°μν©λλ€. μ΄ μ€λ²ν€λλ νΉν λ μμ λ°μ΄ν°μ μ΄λ κ³μ°μ μΌλ‘ κ°λ¨ν μμ μ κ²½μ° μ±λ₯μ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
- λ°λ³΅ μκ³ λ¦¬μ¦: 맡리λμ€λ λ°λ³΅ μκ³ λ¦¬μ¦μ μ΄μμ μ΄μ§ μμ΅λλ€. κ° λ°λ³΅λ§λ€ λμ€ν¬μμ λ°μ΄ν°λ₯Ό μ½κ³ μ€κ° κ²°κ³Όλ₯Ό λ€μ λμ€ν¬μ μ¨μΌ νκΈ° λλ¬Έμ λλ€. μ΄λ λ릴 μ μμ΅λλ€. μ€νν¬λ μΈλ©λͺ¨λ¦¬ μ²λ¦¬λ₯Ό ν΅ν΄ λ°λ³΅ μμ μ λ λμ μ νμ λλ€.
- κ°λ°μ 볡μ‘μ±: νλ‘κ·Έλλ° λͺ¨λΈμ λΉκ΅μ κ°λ¨νμ§λ§, 맡리λμ€ μμ μ κ°λ°νκ³ λλ²κΉ νλ κ²μ μ¬μ ν 볡μ‘ν μ μμΌλ©°, νΉν ν¬κ³ 볡μ‘ν λ°μ΄ν°μ μ λ€λ£° λ κ·Έλ μ΅λλ€. κ°λ°μλ λ°μ΄ν° λΆν , λ°μ΄ν° μ§λ ¬ν, λ΄κ²°ν¨μ±μ μ μ€νκ² κ³ λ €ν΄μΌ ν©λλ€.
- μ§μ° μκ°(Latency): 맡리λμ€μ λ°°μΉ μ²λ¦¬ νΉμ±μΌλ‘ μΈν΄ λ°μ΄ν° μ²λ¦¬μλ λ΄μ¬λ μ§μ° μκ°μ΄ μμ΅λλ€. μ΄λ‘ μΈν΄ μ€μκ° λ°μ΄ν° μ²λ¦¬ μ ν리μΌμ΄μ μλ λ μ ν©ν©λλ€. μνμΉ μΉ΄νμΉ΄(Apache Kafka)λ μνμΉ νλ§ν¬(Apache Flink)μ κ°μ μ€νΈλ¦Ό μ²λ¦¬ νλ μμν¬κ° μ€μκ° μꡬμ λ μ ν©ν©λλ€.
κΈλ‘λ² λ°°ν¬λ₯Ό μν μ€μ κ³ λ € μ¬ν:
- λ°μ΄ν° μμ£Ό μμΉ(Data Residency): κ΅κ²½μ λμ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ GDPR(μ λ½) λλ CCPA(μΊλ¦¬ν¬λμ)μ κ°μ λ°μ΄ν° μμ£Ό κ·μ μ κ³ λ €νμμμ€. λ°μ΄ν° μ²λ¦¬ μΈνλΌκ° κ΄λ ¨ κ°μΈ μ 보 보νΈλ² λ° λ°μ΄ν° 보μ μꡬ μ¬νμ μ€μνλμ§ νμΈνμμμ€.
- λ€νΈμν¬ λμν: νΉν μ§λ¦¬μ μΌλ‘ λΆμ°λ ν΄λ¬μ€ν° κ°μ λ Έλ κ° λ°μ΄ν° μ μ‘μ μ΅μ ννμμμ€. λμ λ€νΈμν¬ μ§μ° μκ°κ³Ό μ νλ λμνμ μ±λ₯μ ν° μν₯μ λ―ΈμΉ μ μμ΅λλ€. λ°μ΄ν° μμΆ λ° μ΅μ νλ λ€νΈμν¬ κ΅¬μ±μ μ¬μ©νλ κ²μ κ³ λ €νμμμ€.
- λ°μ΄ν° νμ: μ μ₯ 곡κ°μ μ€μ΄κ³ 쿼리 μ±λ₯μ ν₯μμν€κΈ° μν΄ Parquet λλ Avroμ κ°μ΄ μ μ₯ λ° μ²λ¦¬μ ν¨μ¨μ μΈ λ°μ΄ν° νμμ μ ννμμμ€. λ€λ₯Έ μΈμ΄μ ν μ€νΈ λ°μ΄ν°λ‘ μμ ν λλ κ΅μ λ¬Έμ μΈμ½λ© νμ€μ κ³ λ €νμμμ€.
- μκ°λ(Time Zones): μ€λ₯λ₯Ό νΌνκΈ° μν΄ μκ°λ λ³ν λ° μμμ μ¬λ°λ₯΄κ² μ²λ¦¬νμμμ€. μ΄λ μ¬λ¬ μ§μμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ νΉν μ€μν©λλ€. μ μ ν μκ°λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκ³ λ΄λΆ μκ° ννμΌλ‘ UTC μκ°μ μ¬μ©νμμμ€.
- ν΅ν λ³ν: κΈμ΅ λ°μ΄ν°λ₯Ό λ€λ£° λ μ μ ν ν΅ν λ³ν λ° μ²λ¦¬λ₯Ό 보μ₯νμμμ€. μ€μκ° νμ¨ λ° λ³νμ μν΄ μ λ’°ν μ μλ ν΅ν λ³ν API λλ μλΉμ€λ₯Ό μ¬μ©νκ³ κΈμ΅ κ·μ μ μ€μνμμμ€.
맡리λμ€ κ΅¬νμ μν λͺ¨λ² μ¬λ‘
맡리λμ€μ ν¨κ³Όλ₯Ό κ·Ήλννλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€:
- λ§΅ λ° λ¦¬λμ€ ν¨μ μ΅μ ν: μ²λ¦¬ μκ°μ μ΅μννκΈ° μν΄ ν¨μ¨μ μΈ λ§΅ λ° λ¦¬λμ€ ν¨μλ₯Ό μμ±νμμμ€. μ΄λ¬ν ν¨μ λ΄μμ λΆνμν κ³μ°κ³Ό λ°μ΄ν° λ³νμ νΌνμμμ€.
- μ¬λ°λ₯Έ λ°μ΄ν° νμ μ ν: μ±λ₯μ ν₯μμν€κ³ μ μ₯ 곡κ°μ μ€μ΄κΈ° μν΄ Avro, Parquet λλ ORCμ κ°μ ν¨μ¨μ μΈ λ°μ΄ν° νμμ μ¬μ©νμμμ€.
- λ°μ΄ν° λΆν : κ° λ§΅ νμ€ν¬κ° κ±°μ λμΌν μμ μμ μ λ°λλ‘ λ°μ΄ν°λ₯Ό μ μ€νκ² λΆν νμμμ€.
- λ°μ΄ν° μ μ‘ μ΅μν: κ°λ₯ν ν 빨리 λ°μ΄ν°λ₯Ό νν°λ§νκ³ μ§κ³νμ¬ λ§΅κ³Ό 리λμ€ νμ€ν¬ κ°μ λ°μ΄ν° μ μ‘μ μ΅μννμμμ€.
- λͺ¨λν°λ§ λ° νλ: 맡리λμ€ μμ μ μ±λ₯μ λͺ¨λν°λ§νκ³ μ±λ₯μ μ΅μ ννκΈ° μν΄ κ΅¬μ± λ§€κ°λ³μ(μ: λ§΅ λ° λ¦¬λμ€ νμ€ν¬ μ, λ©λͺ¨λ¦¬ ν λΉ)λ₯Ό νλνμμμ€. λͺ¨λν°λ§ λꡬλ₯Ό μ¬μ©νμ¬ λ³λͺ© νμμ μλ³νμμμ€.
- λ°μ΄ν° μ§μμ± νμ©: λ°μ΄ν°κ° μλ λ Έλμ λ§΅ νμ€ν¬λ₯Ό μ€μΌμ€λ§νμ¬ λ°μ΄ν° μ§μμ±μ κ·Ήλννλλ‘ ν΄λ¬μ€ν°λ₯Ό ꡬμ±νμμμ€.
- λ°μ΄ν° μ곑(Data Skew) μ²λ¦¬: μΌλΆ ν€μ λΆκ· νμ μΌλ‘ λ§μ μμ κ°μ΄ μλ κ²½μ°(λ°μ΄ν° μ곑) 리λμ€ νμ€ν¬κ° κ³ΌλΆνλλ κ²μ λ°©μ§νκΈ° μν μ λ΅μ ꡬννμμμ€.
- μμΆ μ¬μ©: λ°μ΄ν° μμΆμ νμ±ννμ¬ μ μ‘ λ° μ μ₯λλ λ°μ΄ν°μ μμ μ€μ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
- μ² μ ν ν μ€νΈ: μ νμ±κ³Ό μ±λ₯μ 보μ₯νκΈ° μν΄ λ€μν λ°μ΄ν°μ κ³Ό ꡬμ±μΌλ‘ 맡리λμ€ μμ μ κ΄λ²μνκ² ν μ€νΈνμμμ€.
- λ°λ³΅ μ²λ¦¬λ₯Ό μν΄ μ€νν¬ κ³ λ €: μ ν리μΌμ΄μ μ λ°λ³΅ κ³μ°μ΄ ν¬ν¨λ κ²½μ°, μ€νν¬κ° λ°λ³΅ μκ³ λ¦¬μ¦μ λ μ μ§μνλ―λ‘ μμ 맡리λμ€ λμ μ€νν¬ μ¬μ©μ κ³ λ €νμμμ€.
κ²°λ‘
맡리λμ€λ λΆμ° μ»΄ν¨ν μ μΈκ³μ νλͺ μ μΌμΌμΌ°μ΅λλ€. κ·Έ λ¨μμ±κ³Ό νμ₯μ± λλΆμ μ‘°μ§μ λ°©λν λ°μ΄ν°μ μ μ²λ¦¬νκ³ λΆμνμ¬ λ€μν μ°μ κ³Ό κ΅κ°μ κ±Έμ³ κ·μ€ν ν΅μ°°λ ₯μ μ»μ μ μμ΅λλ€. 맡리λμ€λ νΉμ λμ κ³Όμ λ₯Ό μ μνμ§λ§, νμ₯μ±, λ΄κ²°ν¨μ±, λ³λ ¬ μ²λ¦¬μμμ μ₯μ μΌλ‘ μΈν΄ λΉ λ°μ΄ν° νκ²½μμ μμ΄μλ μ λ λκ΅¬κ° λμμ΅λλ€. λ°μ΄ν°κ° κΈ°νκΈμμ μΌλ‘ κ³μ μ¦κ°ν¨μ λ°λΌ 맡리λμ€μ κ΄λ ¨ κΈ°μ μ κ°λ μ μλ¬νλ κ²μ λͺ¨λ λ°μ΄ν° μ λ¬Έκ°μκ² μ€μν κΈ°μ λ‘ λ¨μ κ²μ λλ€. κ·Έ μ리, μ μ© μ¬λ‘, λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄ν¨μΌλ‘μ¨ λ§΅λ¦¬λμ€μ νμ νμ©νμ¬ λ°μ΄ν°μ μ μ¬λ ₯μ μ΅λν λ°ννκ³ κΈλ‘λ² κ·λͺ¨μ μ 보μ κΈ°λ°ν μμ¬ κ²°μ μ λ΄λ¦΄ μ μμ΅λλ€.